The present invention relates to an envelope generator and, in particular, to a percussion envelope generator for the percussion keyers of electronic musical instruments of the keyboard variety, such as organs and electronic pianos.
The achievement of a percussive effect, like that produced by conventional percussion instruments such as pianos, harpsichords, xylophones and guitars, in electronic musical instruments such as organs and electronic pianos has long been a requirement. The tones produced by such instruments are generally characterized by a sound which increases rapidly immediately after the key is depressed, undergoes a period of fast decay, and then decays more slowly as long as the key is held. When the key is released, the sound again goes into a fast decay to produce a snub effect.
A serious problem with most prior art techniques for accomplishing this effect is that they employ resistor-capacitor circuits for the timing, which are subject to wide variation due to component tolerances, especially with regard to the timing capacitors. This produces different attack and decay characteristics for the different keys and generally results in an overall effect which is unsatisfactory. Other more elaborate and more expensive methods, such as analog shift register delay for timing, and the plucking of a mechanical reed, have also been used, but are generally not cost effective.
In order to closely simulate the sound of a piano, it is desirable that the instrument be provided with a velocity sensing feature, which allows the organist to play the notes loudly or softly, depending on the force with which the keys are struck. Early prior art has employed devices for sensing the speed with which a magnet attached to the key is moved past a coil, such that the faster the speed, the higher the voltage which is induced into the coil. Also employed are piezoelectric devices, which produce an output voltage that varies with the force with which the device is struck. More recent prior art circuits employ an RC timing network, which detects the time interval for the key switch to travel from one bus to a lower bus. If this time interval is short, which results from the key being struck with greater force, the output volume is high. Similarly, if the time interval is long, which indicates that the key is struck more slowly and with less force, the output volume is low.
A major problem with this type of circuit is that the individual RC timing circuits for the respective keys have different tolerances, thereby causing some keys to have different velocity sensitivity than others. Since a plurality of keys are often depressed simultaneously, as in the playing of a chord, the disparity in component tolerances results in the notes having different degrees of loudness.